Skip to content

Use IllegalArgumentException over RepositoryException for readonly-repository checks#140200

Merged
mhl-b merged 7 commits intoelastic:mainfrom
mhl-b:repository-readonly-exception
Jan 6, 2026
Merged

Use IllegalArgumentException over RepositoryException for readonly-repository checks#140200
mhl-b merged 7 commits intoelastic:mainfrom
mhl-b:repository-readonly-exception

Conversation

@mhl-b
Copy link
Copy Markdown
Contributor

@mhl-b mhl-b commented Jan 6, 2026

This PR makes illegal operations on read-only repository return 400 Bad Request rather than 500 Internal Server Error. The 500 error comes from generic RepositoryException. We already have mixed exceptions for read-only repository, where some are IllegalArgumentException and others RepositoryException. With this change there should be no RepositoryException left on read-only checking.

@mhl-b mhl-b added >bug :Distributed/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs Team:Distributed Coordination (obsolete) Meta label for Distributed Coordination team. Obsolete. Please do not use. and removed v9.4.0 labels Jan 6, 2026
@mhl-b mhl-b marked this pull request as ready for review January 6, 2026 06:21
@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

Pinging @elastic/es-distributed-coordination (Team:Distributed Coordination)

@mhl-b mhl-b added the v9.4.0 label Jan 6, 2026
@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

Hi @mhl-b, I've created a changelog YAML for you.

Copy link
Copy Markdown
Member

@DaveCTurner DaveCTurner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM somewhat surprised it didn't need more test changes

Copy link
Copy Markdown
Contributor

@joshua-adams-1 joshua-adams-1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! +1 for the tests - you've changed four exceptions in the code, but only three in the tests, so at a minimum one of these exceptions is currently untested

@mhl-b mhl-b enabled auto-merge (squash) January 6, 2026 21:52
@mhl-b mhl-b merged commit b09fc12 into elastic:main Jan 6, 2026
35 checks passed
szybia added a commit to szybia/elasticsearch that referenced this pull request Jan 7, 2026
* upstream/main: (191 commits)
  Overall Decision for Deciders prioritizes THROTTLE (elastic#140237)
  Apply group by all logic not only to top-level aggregates (elastic#140248)
  [ES|QL] Refactor MV_UNION and MV_INTERSECTION to use shared set operation helper (elastic#139982)
  Avoid reading entire bloom filter file on reader open (elastic#139374)
  Mark bloom filter files for random access (elastic#139375)
  Ensure that the buffer used for ES93BloomFilterStoredFieldsFormat is zeroed (elastic#139034)
  Add busy assertion to avoid race condition for testStalledShardMigrationProperlyDetected (elastic#140230)
  Remove line number check for testTransitiveFindsDeepCallChain (elastic#140228)
  Allow a slight difference in rescored docs (elastic#139931)
  Mute org.elasticsearch.xpack.inference.integration.AuthorizationTaskExecutorIT testCreatesEisChatCompletion_DoesNotRemoveEndpointWhenNoLongerAuthorized elastic#138480
  Start exchange sink fetchers concurrently (elastic#140196)
  Allow allocation to replacement target node on vacate completion (elastic#140150)
  Ignore JNA cleaner threads in SecureHdfsRepositoryAnalysisRestIT (elastic#139925)
  DeterministicQueue refactor and enhancement (elastic#140151)
  Always error out if CCS expression shows up when CCS is not supported (elastic#139009)
  Use IllegalArgumentException over RepositoryException for readonly-repository checks (elastic#140200)
  Guard promql capabilities in AnalyzerTests (elastic#140232)
  [Inference API] Fix flaky AuthorizationTaskExecutorIT tests (elastic#139978)
  Cleaning up exitable vector value impls (elastic#140190)
  [Inference API] Fix auth exception listener not called bug (elastic#139966)
  ...
sidosera pushed a commit to sidosera/elasticsearch that referenced this pull request Jan 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

>bug :Distributed/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs Team:Distributed Coordination (obsolete) Meta label for Distributed Coordination team. Obsolete. Please do not use. v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants